package com.jr.service;

import com.jr.entry.BlogText;
import com.jr.pojo.ShowBlog;
import org.apache.ibatis.session.RowBounds;

import java.util.ArrayList;

public interface BlogTextService {


    /**
     * 《调用BlogTextMapper中的selectByType按照（1、Java基础 2、数据库 3、JSP 4、框架）四个条件查询对应条件中的所有的博客文章》
     * 根据BlogText实体类中的 private String type 进行条件查询
     * type有1、Java基础 2、数据库 3、JSP 4、框架
     * @param blogText
     * @return 查询到的BlogText以集合形式进行遍历显示在页面中
     */
    ArrayList<ShowBlog> showBlogTextBy(BlogText blogText, RowBounds rowBounds);

    ShowBlog showTextByBlogId(Integer blogId);

    ArrayList<BlogText> showByStatus(Integer status);

    /**
     * 《调用BlogTextMapper中的selectByClickNumber完成站点首页中的“热门文章”展示》
     * 根据点击次数进行热门文章点击次数从大到小排序
     * @return 询到的BlogText以集合形式进行遍历显示在侧面的热门文章模块处
     */
    ArrayList<ShowBlog> showBlogTextByClickNumber();


    Integer showBlogTextSize(BlogText blogText);


    /**
     * 《调用BlogTextMapper中的selectByBlogId完成站点首页中"被选中文章的"阅读原文功能功能的详情展示》
     * 根据被点击详情的文章ID进行查询，并将BlogText相应内容回显在详情页对应位置
     * @param blogText
     * @return 通过点击的文章ID以对象形式将内容遍历在详细信息中
     */
    BlogText showBlogTextDetail(BlogText blogText);

    /**
     *《调用BlogTextMapper中的selectByTypeOderByClickNumber展示阅读详情下方的相关推荐功能》
     * 根据文章类型查询并且按照点击次数，取出点击次数最多的前三条数据显示在相关推荐模块中
     * @param blogText  中的文章类型字段
     * @return 根据文章类型查询到的数据
     */
    ArrayList<BlogText> showSuggest(BlogText blogText);



    /**
     * 《调用BlogTextMapper中的selectByUid在后台首页·文章·管理位置 展示普通用户名下所有文章（如果登陆的是管理员使用上方的showAllBlogText方法》
     * 根据用户传过来的uid查询blogText表里的用户uid的对应的所有的blogtext数据 显示在后台首页文章管理位置
     * @param blogText
     * @return
     */
    ArrayList<ShowBlog> showBackground(BlogText blogText);

    /**
     * 《调用BlogTextMapper中的selectByUid在后台首页·文章·管理位置 展示普通用户名下所有文章（如果登陆的是管理员使用上方的showAllBlogText方法》
     * 根据用户传过来的uid查询blogText表里的用户uid的对应的所有的blogtext数据 显示在后台首页文章管理位置
     * @param blogText
     * @return
     */
    ArrayList<ShowBlog> showBackground1(BlogText blogText);
    /**
     * 《调用BlogTextMapper中的updateBlogTextByBlogId在后台首页·文章·管理位置 的编辑功能》
     * 后台管理模块中的文章编辑功能
     * 根据被选中的BlogText 对象中的blogid找到对应的文章，对文章进行编辑更改
     * @param blogText
     * @return 成功返回1失败返回0
     *
     */
    boolean editBlogText(BlogText blogText);

    /**
     * 《调用BlogTextMapper中的deleteBlogTextByBlogId在后台首页·文章·管理位置 的删除功能》
     * 后台管理模块中的文章删除功能
     * 根据被选中的BlogText 对象中的blogid找到对应的文章，对文章进行删除
     * @param blogText
     * @return  删除成功返回1 失败返回0
     */
    boolean removeBlogText(BlogText blogText);



    /**
     * 《调用BlogTextMapper中的insertBlogText在后台首页·文章·编写文章模块的添加功能》
     * 后台管理中编写文章模块  新增文章
     * @param blogText
     * @return 成功返回1 失败返回0
     */
    boolean addBlogText(BlogText blogText);
}
